The Reactive Keyboard is a text editor with the added feature of predictive text generation. It provides an alternative means of generating text to the conventional keyboard. Wherever possible it attempts to predict what the user is going to type next. It is described by J.J. Darragh, I.H. Witten, and M.L. James. ╥The Reactive Keyboard: A predictive typing aid╙IEEE Computer, Vol 23, No.11, pp. 41-49, Nomember 1990, and in a forthcoming book by J.J. Darragh and I.H. Witten entitled ╥The Reactive Keyboard╙ (Cambridge University Press).
\style bold
\just center
\size 140
COPYRIGHT AND DISTRIBUTION
Copyright ⌐ 1990, John J. Darragh, Ian H. Witten and Mark L. James. Permission is granted to make and distribute copies of this software, provided this disclaimer and copyright notice are preserved on all copies. The software may not, however, be sold or distributed for profit, or included with other software which is sold or distributed for profit, without the permission of the authors.
The Reactive Keyboard is free. There is no shareware fee. We encourage you to make and distribute as many copies as you wish, for whomever you wish, as long as it is not for profit. The current version is available electronically via anonymous ftp from cpsc.UCalgary.CA (internet 136.159.2.1). Versions for the IBM PC and Unix are available from the same source.
The Reactive Keyboard is provided in source form so that it can be modified to suit different people╒s requirements. If you do modify it, we╒d like to hear about it so that others will be able to benefit from your efforts.
The Reactive Keyboard is a demonstration program, not a commercial product. We cannot offer services such as telephone support, mailing lists, or upgrade services.
\tcon Predictive Text Generation
\style bold
\just center
\size 140
PREDICTIVE TEXT GENERATION
To enable the Reactive Keyboard to make predictions, a model of previously entered text is created and maintained adaptively. This model contains a large number of recurring selection element sequences (n-grams) with associated occurrence frequencies. In prediction, this model, along with the current context, is used to determine likely continuations. The basic idea is to order context-conditioned candidate strings, which are predicted by the model, according to popularity and display them for selection. Each prediction starts with a different ASCII character, so that the entire character set can always be accessed. A menu interface allows the user to accept all or part of any prediction. Accepted predictions appear to the editor as if the user had typed them in himself.
Obviously predictions are not always correct, but they are correct often enough to form the basis of a useful communication device. Since they are created adaptively, based on what the user has already typed in this session or in previous ones, the system conforms to whatever kind of text is being entered. Prediction accuracy improves continually as the user history accumulates.
\page
\tcon Usage
\style bold
\just center
\size 140
USAGE
When the Reactive Keyboard is invoked, two windows appear. Both can be scrolled, zoomed, moved, and resized.
The ╥text window╙ (labeled Untitled) contains the text being entered, and is initially empty. Basic text editing facilities are provided for file handling and text manipulation. Only one text window can be open at a time.
The ╥predictions window╙ contains the Reactive Keyboard╒s predictions, which form a list at the righthand side of the window. After selecting the predictions window (by clicking the mouse anywhere in it), the mouse can be moved over these predictions and the relevant portions of them will appear highlighted at the current text position. Clicking causes them to be copied into the text buffer and new predictions to be displayed. The standard scroll bar can be used to scroll through the complete list of predictions. The number and length of displayed predictions can be adjusted by changing the window size.
Characters preceding the cursor position can be erased by moving the mouse over the context string which is displayed to the left of the predictions. The relative length of the context and prediction in the window can be changed by dragging the vertical separating bar.
\tcon Priming
\style bold
\just center
\size 140
PRIMING
Predictions are based on the text provided to the Reactive Keyboard in the form of a priming file, as well as text entered in the current editing session. For good performance it is essential that the priming file match the character of the text being entered.
There is a default priming file used at startup. However, the Reactive Keyboard can be reprimed at any time by selecting ╥Prime from file ...╙ from the File menu. In addition, an option in the Open File dialog box permits priming from a file as it is read. In either case the model can be cleared before priming or not, as required
\page
\tcon Parameters
\style bold
\just center
\size 140
PARAMETERS
The Reactive Keyboard╒s operation is controlled by parameters that can be adjusted by selecting ╥Model Preferences ...╙ from the Options menu.
\tcon Max Frequency
\style bold
\size 120
Maximum Frequency
The maximum frequency retained for any given context.
\tcon Model Order
\style bold
\size 120
Model Order
Controls the depth of a tree built by the Reactive Keyboard that is used to make predictions. The model order is the number of context characters used to make predictions.
\tcon Startup Amount
\style bold
\size 120
Startup Amount
The maximum number of characters read from the priming file. If greater than the size of the priming file, first part of the priming file will be omitted.
\tcon Stop at CR
\style bold
\size 120
Stop predictions at Return
Determines whether or not predictions stop when an end-of-line character is predicted.
\tcon Show SP Tab CR
\style bold
\size 120
Show Space Tab and CR
Replaces these by appropriate visible characters in the predictions window
\tcon Prime File
\style bold
\size 120
Prime File
The default file used to prime the predictive model on startup.
\tcon Zero-Frequency File
\style bold
\size 120
Zero-Frequency File (optional: a built-in default is provided)
Gives all ASCII characters in the order of their expected frequency of appearance in text. The file is a list of 128 characters, each on its own line.
\page
\tcon Special Thanks
\style bold
\just center
\size 140
SPECIAL THANKS
Special thanks to John Norstad and Northwestern University for the on-line help code.